﻿package mortal.game.net.command.task
{
    import Framework.MQ.*;
    import Message.Game.*;
    import Message.Public.*;
    import extend.language.*;
    import mortal.game.cache.*;
    import mortal.game.manager.*;
    import mortal.game.manager.msgTip.*;
    import mortal.game.mvc.*;
    import mortal.game.net.broadCast.*;
    import mortal.game.resource.*;
    import mortal.game.resource.tableConfig.*;
    import mortal.game.view.task.data.*;
    import mortal.mvc.core.*;

    public class TaskUpdateCommand extends BroadCastCall
    {

        public function TaskUpdateCommand(param1:Object)
        {
            super(param1);
            return;
        }// end function

        override public function call(param1:MessageBlock) : void
        {
            var _loc_3:SPlayerTaskUpdate = null;
            var _loc_4:TaskInfo = null;
            var _loc_5:Array = null;
            var _loc_6:int = 0;
            var _loc_7:SProcess = null;
            var _loc_8:int = 0;
            var _loc_9:String = null;
            var _loc_10:int = 0;
            var _loc_11:int = 0;
            var _loc_12:int = 0;
            var _loc_2:* = param1.messageBase as SSeqPlayerTaskUpdate;
            for each (_loc_3 in _loc_2.updates)
            {
                
                _loc_4 = Cache.instance.task.getTaskByCode(_loc_3.taskCode);
                if (_loc_4 == null || _loc_4.playerTask.currentStep != _loc_3.currentSetp)
                {
                    continue;
                }
                _loc_5 = _loc_4.stask.processMap[_loc_4.curStep];
                if (_loc_4.isComplete())
                {
                    _loc_5 = _loc_4.stask.processMap[(_loc_4.curStep - 1)];
                }
                _loc_6 = 0;
                while (_loc_5 != null && _loc_6 < _loc_5.length)
                {
                    
                    _loc_7 = _loc_5[_loc_6];
                    if (_loc_7 == null)
                    {
                    }
                    else
                    {
                        _loc_8 = -1;
                        _loc_9 = "";
                        _loc_10 = 1;
                        _loc_11 = _loc_3.stepRecords[_loc_6];
                        _loc_12 = _loc_4.playerTask.stepRecords[_loc_6];
                        if (_loc_11 == _loc_12)
                        {
                        }
                        else
                        {
                            switch(_loc_7.type)
                            {
                                case ETaskProcess._ETaskProcessCollect:
                                {
                                    _loc_9 = BossConfig.instance.getInfoByCode(_loc_7.contents[0]).name;
                                    _loc_10 = _loc_7.contents[2];
                                    _loc_8 = 20258;
                                    break;
                                }
                                case ETaskProcess._ETaskProcessKill:
                                {
                                    _loc_9 = BossConfig.instance.getInfoByCode(_loc_7.contents[0]).name;
                                    _loc_10 = _loc_7.contents[2];
                                    _loc_8 = 20257;
                                    break;
                                }
                                case ETaskProcess._ETaskProcessDrop:
                                {
                                    _loc_9 = ItemConfig.instance.getConfig(_loc_7.contents[1]).htmlName;
                                    _loc_10 = _loc_7.contents[3];
                                    _loc_8 = 20256;
                                    break;
                                }
                                default:
                                {
                                    break;
                                }
                            }
                            if (_loc_4.isComplete())
                            {
                                _loc_10 = _loc_11;
                            }
                            if (_loc_8 > 0)
                            {
                                MsgManager.addTipText(Language.getStringByParam(_loc_8, _loc_9, _loc_11, _loc_10), MsgHistoryType.TaskMsg);
                            }
                        }
                    }
                    _loc_6++;
                }
            }
            Cache.instance.task.updateTask(_loc_2.updates);
            NetDispatcher.dispatchCmd(ServerCommand.TaskUpdate, _loc_2.updates);
            return;
        }// end function

    }
}
